package com.settlement.system.service;

import com.settlement.system.common.exception.ServiceException;
import com.settlement.system.model.entity.common.CommonPlugIn;
import com.settlement.system.model.entity.common.SinglePage;

import java.util.List;
import java.util.Map;

/**
 * @author author
 */
public interface IWpPlugInService {

    /**
     * 获取账单的数量
     * @param params
     * @return
     * @throws ServiceException
     */
    public Integer getBillNumberCount(Map<String,Object> params) throws ServiceException;

    /**
     * 获取账单
     * @param page
     * @param params
     * @param orderByField
     * @param orderBy
     * @return
     * @throws ServiceException
     */
    public List<CommonPlugIn> getBillNumber(SinglePage page, Map<String,Object> params, String orderByField, String orderBy) throws ServiceException;

    /**
     * 获取结算期间的数量
     * @param param
     * @return
     * @throws ServiceException
     */
    public Integer getSettlePeriodCount(Map<String,Object> param) throws ServiceException;

    /**
     * 获取档期的数量
     * @param param
     * @return
     * @throws ServiceException
     */
    public Integer getCalendarCount(Map<String,Object> param) throws ServiceException;

    /**
     * 获取结算期间
     * @param page
     * @param params
     * @param orderByField
     * @param orderBy
     * @return
     * @throws ServiceException
     */
    public List<CommonPlugIn> getSettlePeriod(SinglePage page, Map<String,Object> params, String orderByField, String orderBy) throws ServiceException;

    /**
     * 获取档期
     * @param page
     * @param params
     * @param orderByField
     * @param orderBy
     * @return
     * @throws ServiceException
     */
    public List<CommonPlugIn> getCalendar(SinglePage page, Map<String,Object> params, String orderByField, String orderBy) throws ServiceException;

    Integer getOrderScheduleCount(Map<String, Object> param) throws ServiceException;

    List<CommonPlugIn> getOrderSchedule(SinglePage page, Map<String, Object> params, String orderByField, String orderBy) throws ServiceException;

    /**
     * 获取店铺
     * @param param
     * @return
     * @throws ServiceException
     */
    public List<CommonPlugIn> getShop(Map<String,Object> param) throws ServiceException;

    /**
     * 获取公司
     * @param param
     * @return
     * @throws ServiceException
     */
    public List<CommonPlugIn> getCompany(Map<String,Object> param) throws ServiceException;

    List<CommonPlugIn> getBillTypeList(Map<String, Object> param) throws ServiceException;

    List<CommonPlugIn> getBillCategoryList(Map<String, Object> param) throws ServiceException;

    List<CommonPlugIn> getBillCategoryInUseList(Map<String, Object> param) throws ServiceException;

    List<CommonPlugIn> getBillTypeListAll(Map<String, Object> param) throws ServiceException;

    List<CommonPlugIn> searchChannelList(Map<String, Object> param) throws ServiceException;

    List<CommonPlugIn> searchCategoryList(Map<String, Object> param) throws ServiceException;

    List<CommonPlugIn> searchQueryTableList(Map<String, Object> param) throws ServiceException;

    public List<CommonPlugIn> getVoucherTypeList(Map<String, Object> param) throws ServiceException;
}
